package hotel.hotel;

public interface IProperty {
	
	// REQUETES
	
	/**
	 * @return le nom de cette propriété.
	 */
	String getName();
	
	/**
	 * @return le prix auquel la propriété peut être achetée.
	 */
	long getCost();
	
	/**
	 * @return le prix auquel la propriété peut être rachetée.
	 */
	long getReCost();
	
	/**
	 * @return le prix d'achat d'une entrée.
	 */
	long getEntryCost();
	
	/**
	 * @return le nombre de bâtiments qui peuvent être construits sur cette propriété.
	 */
	int getCapacity();
	
	/**
	 * @return le prix de construction du i-ème bâtiment.
	 */
	long getBuildingCost(int i);
	
	/**
	 * @return le prix de construction d'une base de loisirs.
	 */
	long getFunAreaCost();
	
	/**
	 * @param i le nombre de bâtiments sur cette propriété
	 * @return le loyer s'il y a i bâtiments construits.
	 */
	long getRent(int i);
	
	/**
	 * @param i le nombre de bâtiments sur cette propriété
	 * @param funArea si une base de loisirs a été construite
	 * @return le loyer s'il y a i bâtiments construits et éventuellement une base de loisirs.
	 */
	long getRent(int i, boolean funArea);

}
